草庐IT

javascript - 没有在 React-Router 中调用 onEnter

全部标签

ruby - 如何调用在不同上下文中获取 block 的 Proc?

以这个例子为例:proc=Proc.new{|x,y,&block|block.call(x,y,self.instance_method)}它有两个参数,x和y,还有一个block。我想为自己使用不同的值来执行该block。像这样的东西几乎可以工作:some_object.instance_exec("xarg","yarg",&proc)但是,这不允许您传入一个block。这也行不通some_object.instance_exec("xarg","yarg",another_proc,&proc)也没有some_object.instance_exec("xarg","yarg"

Ruby:为什么 puts 会调用 to_ary?

我正在学习Ruby中的元编程,并且正在尝试通过method_missing和define_method定义缺失的方法。我遇到了一些意想不到的行为,想知道是否有人可以解释这一点。这是我的类(class):classXdefmethod_missing(m,*args,&block)puts"method#{m}notfound.Definingit."self.class.send:define_method,mdoputs"hifrommethod#{m}"endputs"definedmethod#{m}"endend现在,这段代码:x=X.newx.some_methodputsx

ruby-on-rails - 为什么使用 Proc.new 来调用 Rails 回调中的方法?

在RoR的所有教程中,我看到了编码人员选择使用Proc.new的实例,而这似乎既不必要又相当没有吸引力。例如,这是一个放置在模型中的回调,一个使用Proc.new,另一个可能做同样的事情:classOrderProc.new{|order|order.paid_with_card?}endclassOrder"paid_with_card?"end那有什么区别呢?为什么要使用过程?他们不都叫“paid_with_card”吗?方法?提前致谢 最佳答案 在上面的示例中,为条件方法使用符号可能是最佳选择。classOrder:paid_

ruby-on-rails - 为什么在 Controller 被子类化时 Rails before_filter 被调用两次?

我在使用Rails2.3.5,我遇到了这个问题:classBaseController[:index]endclassChildController[:index,:show,:other,:actions]end问题是在ChildController上,过滤器之前的:foo被调用了两次。我已经尝试了很多解决这个问题的方法。如果我不在子项中包含:index操作,则永远不会为该操作调用它。我找到的解决方案有效,但我认为它非常难看skip_before_filter:foobefore_filter:foo,:only=>[:index,:show,:other,:actions]有没有更

ruby - Rails 获取没有日期的当前时间

我知道有很多关于Rails的日期和时间的问题,但我似乎无法解决我遇到的问题。我可能只是对此很愚蠢..无论如何,我的问题是我想获取当前时间没有附加的日期。例如,当我使用以下内容时,我得到:Time.now=>2012-06-2909:23:04-0400或Time.current=>Fri,29Jun201209:23:23EDT-04:00我想在没有日期的情况下获取当前时间。即只是09:23:04-0400或09:23:23EDT-04:00如果有问题已经解决了这个问题,我将不胜感激。谢谢! 最佳答案 使用strftime以您想要的

ruby - 从 TestCase 调用 Sinatra 应用程序实例方法

我在Sinatra应用程序中有一个util方法,我想从我的TestCase进行测试.问题是我不知道如何调用它,如果我只使用app.util_method我有错误NameError:undefinedlocalvariableormethod'util_method'for#我的应用.rb:classMyAppmy_app_test.rb:require"my_app.rb"require"test/unit"require"rack/test"classMyAppTest 最佳答案 西纳特拉aliasesthenewmethodto

ruby - 如何获得 JavaScript 样式的哈希访问?

我知道ActiveSupport提供了此功能。h=ActiveSupport::OrderedOptions.newh.boy='John'h.girl='Mary'h.boy#=>'John'h.girl#=>'Mary'但是我已经有一个很大的散列,我想使用点表示法访问该散列。这是我尝试过的:large_hash={boy:'John',girl:'Mary'}h=ActiveSupport::OrderedOptions.new(large_hash)h.boy#=>nil那没有用。我怎样才能使这项工作。我正在使用ruby1.9.2更新:抱歉,我应该提到我不能使用openstruc

ruby-on-rails - 没有路由匹配... Rails 引擎

所以我不断收到错误:没有路由匹配{:action=>"create",:controller=>"xaaron/api_keys"}测试中抛出的是:it"shouldnotcreateanapikeyforthosenotloggedin"dopost:createexpect(response).toredirect_toxaaron.login_pathend当我转到spec/dummy并运行rakeroutes命令时,我看到:api_keysGET/api_keys(.:format)xaaron/api_keys#indexPOST/api_keys(.:format)xaar

ruby - 使用 "send"而不是普通方法调用有什么意义?

据我了解“发送”方法,这个some_object.some_method("imanargument")和这个一样some_object.send:some_method,"imanargument"那么使用“发送”方法有什么意义呢? 最佳答案 如果您事先不知道方法的名称,它会派上用场,例如,当您进行元编程时,您可以将方法的名称放在变量中并将其传递给发送方法。它也可以用于调用私有(private)方法,尽管大多数Ruby开发人员并不认为这种特殊用法是一种好的做法。classTestprivatedefmy_private_metho

ruby-on-rails - 在 Rails 中使用没有父 ID 的嵌套资源

我有一个名为Imprintables的类,其中包含嵌套资源Styles、Brands、Colors和尺寸。我目前在我的路线文件中有这个:resources:imprintablesdoresources:styles,:brands,:colorsresources:sizesdocollectiondopost'update_size_order'endendend产生这样的路线:/imprintables/:imprintable_id/brands/imprintables/:imprintable_id/colors/imprintables/:imprintable_id/s